#ifndef Game_h
#define Game_h

#include <string>
#include "../Utility/Singleton.h"
#include "./Level/Level.h"

using namespace std;

const string ksPathMap = "./Data/Level.xml";

class cGame : public cSingleton<cGame> {
	friend class cSingleton<cGame>;
private:
	// Private fields
	bool mbFinished;
	float mfX;		// X position
	float	mfY;		// Y position
	float mfVX;		//	X Velocity
	float mfVY;		//	Y Velocity
	cLevel mLevel; // Level



	// Private Methods
	void LoadResources();
	

protected:
	inline cGame() { ; }

public:
	// Function to initialize the game
	bool Init();

   // Function to uptade the game
	void Update(float lfTimeStep);

	// Function to render the game
	void Render();

	// Function to deinitialize the game
	bool DeInit();

	inline bool HasFinished() {return mbFinished;}
	inline void SetFinished() {mbFinished = true;}
	// Return the current Level
	inline cLevel &GetLevel() {return mLevel;}
};
#endif